|
Date : 15 mai 1994 Programme : QPEG V1.3k Protection : TEMPO SHAREWARE Outils : SOFT-ICE V2.64 Temps pass� : 1 heure Fichier : QPEG.EXE Soci�t� : SHAREWARE Divers : Comprim� par PKLITE pro. Origine : DPTOOLS Num�ro : 244 UNP n'y voit que du feu lorsqu'il essaie de d�comprimer l'exe, m�me la version 2.0a ! La routine de compression de PKLITE doit �tre incluse lors de l'assemblage ( � v�rifier lorsque j'aurais le temps ). La solution finale sera un lanceur comme d'habitude dans ces cas l�. J'essaie de faire apparaitre SOFT-ICE lorsque je suis dans la boucle de tempo, pendant que les 15 caract�res disparaissent les uns apr�s les autres � l'�cran. Mais en vain. J'essaie l'int 10 puisque l'on raze l'�cran juste apr�s avoir appuy� sur ALT-X. C'est bon. Je d�roule au pas � pas et je tombe sur le CALL responsable de la tempo en CS:3AD0. CS=0984 CS:3ACD E8FBC8 CALL 03CB ;AFFICHE TEXTE CS:3AD0 E868DB CALL 163B ;TEMPO ! CS:3AD3 803E5C0F00 CMP BYTE PTR [05FC],00 J'essaie de sauter le CALL 163B avec un RIP 3AD3 mais le soft se plante. Il faut donc chercher dans le CALL 163B. La premi�re chose qui saute aux yeux est la comparaison avec 15 en CS:1744. C'est le nombre de carcat�res qui se d�cr�mente � l'�cran. Je fais [BP-02] �gal � 00 et j'essaie. Le soft se plante toujours ! Je fais CMP avec 00: idem. Avec 01 encore pareil ! Je force le saut qui suit, �a replante ! CS:163B : : CS:1744 837EFE0F CMP WORD PTR [BP-02],+0F ; CMP LES 15 CARS. CS:1748 75.. JNZ .... A premi�re vue il semble que lors du d�roulement de chaque it�ration le soft va initialiser ou v�rifier quelque chose. Je le trace jusqu'� la sortie avec MOV AH,4C et INT 21 dans un cas et dans l'autre mais je ne remarque aucune diff�rence. Simplement qu'il ne revient pas au DOS lorsque je trafique la routine de la tempo. J'essaie un dernier truc: laisser la boucle de la tempo telle qu'elle est et simplement agir sur la tempo elle-m�me afin de l'acc�l�rer ou de la supprimer. Dans le CALL 163B il y avait un autre CALL que je n'avais pas examin�: CALL 03ED. En mettant un point d'arr�t juste apr�s on s'aper�oit bien que c'est ce CALL qui temporise. CS:163B : CS:1726 E8C4EC CALL 03ED ;TEMPO ! : CS:1744 837EFE0F CMP WORD PTR [BP-02],+0F ; CMP LES 15 CARS. Je plonge dedans et trouve juste un CALL far entour� de quelques amuse-gueules classiques: PUSH, POP, NOP, CLOP, PAS-CLOP. Je l'anihile avec mon d�sint�grateur photonique et j'essaie. CS:03ED 55 PUSH BP ; Etablissement d'un stack frame : : CS:03F3 9A4D01F618 CALL 18F6:014D ; Tempo ! ....l'�cran SHAREWARE ainsi que les 15 caract�res apparaissent... et disparaissent aussitot �cras� par l'image de NC v4.0 Francais ! Ca a march�. Il faut donc param�trer le lanceur comme suit: ;****************************************************************************** ; ZONE A INITIALISER adr_ip1 equ 03F3h ; Adresse dont le contenu est � modifier. anc_val equ 4D9Ah ; Valeur d'origine � rechercher, invers�e. nouv_val equ 03EBh ; Nouvelle valeur (la modif). INT_DET equ 10h ; Le num�ro de l'INT que l'on veut utiliser. ;****************************************************************************** db 55h,0aah ; Identificateur de d�but. chaine: db '����������ğre��y���������Ŀ' db '� �' db '� QPEG Bypass �' db "� I hope you'll enjoy it �" db '� �' db '��� Lan�eur Crypt� V1.1 ����' mess_err db 0ah,0dh,'Programme enfant non trouv�','$' nom_prg db 'qpeg.exe',0,0,0,0,0 ; 12 car max + nul chaine_fin: db 0aah,55h ; Identificateur de fin. Nota: Un petit probl�me existe lorsque mon lanceur est dans le path, il ne cherche pas le programme fils dans le path mais dans le r�pertoire courant. C'est un peu g�nant. A voir... Freddy |